perm filename WINTER.SAI[VIS,HPM]1 blob
sn#109104 filedate 1974-07-03 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 BEGIN "WINTER"
C00006 ENDMK
C⊗;
BEGIN "WINTER"
REQUIRE "WINNIC.SAI[VIS,HPM]" SOURCE_FILE;
INTEGER ARRAY CHAN[0:5]; INTEGER WINDOW,I,J,MAC;
REAL SUM,TX,TY; STRING FILN;
CHAN[0]←'32; CHAN[1]←'37; CHAN[2]←'33; CHAN[3]←'34; CHAN[4]←'35; CHAN[5]←'36;
DDINIT; SCREEN(-.2,1.2,1.2,-.2); DRKEN; RECTAN(-2,-2,2,2);
DO OUTSTR("FILENAME:") UNTIL
PIXDIM((FILN←INCHWL)&(IF FILN[∞ TO ∞]="]" THEN "" ELSE "[DAT,BGB]"));
OUTSTR("WINDOW SIZE:"); WINDOW←CVD(INCHWL); INIWIN(WINDOW);
OUTSTR("PICSIZ "&CVS(PICSIZ)&
" WIDTH "&CVS(PICWID)&" HEIGHT "&CVS(PICHIG)&" WINDOW "&CVS(WINDOW)&
" VERWIN "&CVS(VERWIN)&" HORWIN "&CVS(HORWIN)&'15&'12);
BEGIN INTEGER I,J; REAL X,Y;
INTEGER ARRAY PIC[1:PICSIZ],WINS[1:VERWIN,1:HORWIN];
TX←WINDOW/PICWID;
TY←WINDOW/PICHIG;
GETPIX(PIC);
OUTSTR("DISPLAY?"); IF INCHWL="Y" THEN
BEGIN
FOR I←1 STEP 1 UNTIL 5 DO DPYUP('36);
LITEN; TXTPOS(0,1.2,.04,-.08); TEXT(FILN); DRKEN;
FOR I←4 STEP -1 UNTIL (5-PICBIT) MAX 0 DO
BEGIN
RECTAN(0,0,1,1);
VIDEO(0,0,1,1,PIC[1],2↑(PICBIT+I-5));
FOR J←1 STEP 1 UNTIL 5 DO DPYUP(CHAN[I]);
END;
END;
RECTAN(-2,-2,2,2); LITEN;
FOR J←0 STEP 1 UNTIL HORWIN DO
BEGIN
X←J*TX;
LINE(X,0,X,-.02); LINE(X,1,X,1.02);
END;
FOR I←0 STEP 1 UNTIL VERWIN DO
BEGIN
Y←I*TY;
LINE(0,Y,-.02,Y); LINE(1,Y,1.02,Y);
END;
DOWIN(PIC[1],WINS[1,1]);
DPYUP(CHAN[5]);
MAC←0;
FOR I←1 STEP 1 UNTIL VERWIN DO
FOR J←1 STEP 1 UNTIL HORWIN DO
BEGIN SUM←SUM+WINS[I,J]; MAC←MAC MAX WINS[I,J]; END;
SUM←SUM/(VERWIN*HORWIN);
FOR I←2 STEP 1 UNTIL VERWIN-1 DO
FOR J←2 STEP 1 UNTIL HORWIN-1 DO
BEGIN INTEGER II,JJ,WMAX;
X←(J-1)*TX;
Y←(I-1)*TY;
WMAX←0;
FOR II←-1,0,1 DO FOR JJ←-1,0,1 DO IF II≠0∨JJ≠0 THEN WMAX←WMAX MAX WINS[I+II,J+JJ];
IF WINS[I,J]≥WMAX MAX SUM THEN
BEGIN
LINE(X,Y,X+TX,Y);
LINE(X+TX,Y,X+TX,Y+TY);
LINE(X+TX,Y+TY,X,Y+TY);
LINE(X,Y+TY,X,Y);
END;
END;
FOR I←1 STEP 1 UNTIL 5 DO DPYUP(CHAN[5]);
MAKPIX(VERWIN,HORWIN,6);
BEGIN
INTEGER ARRAY POUT[1:PICSIZ];
FOR I←1 STEP 1 UNTIL VERWIN DO FOR J←1 STEP 1 UNTIL HORWIN
DO PUTEL(POUT[1],I,J,63*SQRT(WINS[I,J]/MAC));
PUTPIX(POUT,"TMP.TMP");
END;
END;
END;